package com.sp.fresh_produce.model.dao;

import com.sp.fresh_produce.model.pojo.Product;
import com.sp.fresh_produce.model.query.ProductListQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品表 Mapper 接口
 */
public interface ProductMapper {
    /** 按主键删除 */
    int deleteByPrimaryKey(Integer id);

    /** 全量插入 */
    int insert(Product record);

    /** 选择性插入（仅非空字段） */
    int insertSelective(Product record);

    /** 按主键查询 */
    Product selectByPrimaryKey(Integer id);

    /** 选择性按主键更新（仅更新非空字段） */
    int updateByPrimaryKeySelective(Product record);

    /** 全量按主键更新 */
    int updateByPrimaryKey(Product record);

    /** 按名称查询 */
    Product selectByName(String name);

    /** 批量上下架商品  */
    int batchUpdateProductStatus(@Param("ids") Integer[] ids,@Param("sellStatus") Integer sellStatus);

    /** 查询所有商品 */
    List<Product> selectAll();

    /** 分页查询分类 */
    List<Product> selectProductPage(@Param("offset") int offset, @Param("pageSize") int pageSize);

    /** 统计所有分类数量 */
    int countProductAll();

    List<Product> selectList(@Param("productListQuery") ProductListQuery productListQuery);
}